home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / comm / sansint2.zip / SANSINT2.BAS < prev    next >
BASIC Source File  |  1990-11-24  |  2KB  |  51 lines

  1. SCREEN 0, 1
  2. COLOR 15, 1
  3.         'DEFINITIONS B=BASE ADDRESS, SPEED=BAUD RATE, WL=WORD LENGTH
  4.         'STOPS=STOP BITS, PARITY=PARITY (0 for no parity, 1 for even,
  5.         '2 for odd)
  6. ON ERROR GOTO CREATE
  7. START:
  8.         OPEN "SANS.PRO" FOR INPUT AS #1
  9.         INPUT #1, B, speed, WL, stops, parity
  10.         CLOSE #1
  11.         rate = 115200 / speed: MSB = INT(rate / 256): LSB = ((rate / 256) - MSB) * 256
  12.         IF WL = 5 THEN WB = 0
  13.         IF WL = 6 THEN WB = 1
  14.         IF WL = 7 THEN WB = 2
  15.         IF WL = 8 THEN WB = 3
  16.         IF parity = 0 THEN PB = 0
  17.         IF parity = 1 THEN PB = 8 + 16
  18.         IF parity = 3 THEN PB = 8
  19.         IF stops = 1 THEN SB = 0
  20.         IF stops = 2 THEN SB = 4
  21.         CONFIG = WB + SB + PB
  22. 20 OUT (B + 4), 0 'disable interrupt line
  23. 30 OUT (B + 3), 128'access divisor latch
  24. 40 OUT (B), LSB    'set lsb of dll to control baud rate
  25. 50 OUT (B + 1), MSB  'set msb of dll
  26. 55 OUT (B + 4), 3   'set data terminal ready and RTS on
  27. 60 OUT (B + 3), CONFIG  'access tx and rx and set wl,parity,stop bits
  28. 70 T$ = INKEY$: IF T$ <> "" THEN GOSUB 9900
  29. 75 Q = INP(B + 5): QQ = Q AND 1
  30. 80 IF QQ = 1 THEN GOSUB 20000
  31. 90 GOTO 70
  32. 9900 IF ECHO = 1 THEN PRINT T$;
  33. 10000 IF INP(B + 5) AND 32 = 32 THEN OUT B, ASC(T$): RETURN
  34. 10010 GOTO 10000
  35. 20000 R = INP(B): PRINT CHR$(R);
  36. 20010 RETURN
  37.  
  38. CREATE:              'create sans.pro if it does not exist
  39.         IF ERR <> 53 THEN ON ERROR GOTO 0 'disables error trapping if
  40.                 'error not recoverable (not a missing file)
  41.         INPUT "Enter the base port address"; B
  42.         INPUT "Enter Baud rate (45 to 9600)"; speed
  43.         INPUT "Enter the Word Length (5 to 8);"; WL
  44.         INPUT "Enter the stop bits (1 or 2)"; stops
  45.         INPUT "Enter the parity (0 for no parity, 1 for even, 2 for odd)"; parity
  46.         INPUT "Enter a 1 if you want ECHO on, a 0 for ECHO off"; ECHO
  47.         OPEN "sans.pro" FOR OUTPUT AS #1
  48.         PRINT #1, B, speed, WL, stops, parity, ECHO
  49.         CLOSE #1: GOTO START
  50.  
  51.